Conventional compaction of free space in garbage collection that uses memory copying has a negative performance impact by requiring large amounts of memory to be shifted. These known memory copying compaction techniques are expensive and cause significant paging activity with associated memory thrashing. Other conventional compaction methods are inefficient, including those that rely on virtual memory to exploit page faults to implement operating system supported read and write barriers. Furthermore, a known compaction method uses virtual memory management to decommit free pages and commit uncommitted pages, but the resulting number of pages needed, the use of three types of pages (i.e., free, live, and uncommitted), and the intermingling of uncommitted pages with live pages indicate deficiencies in complexity, effectiveness, and efficiency (e.g., additional management is required for the interspersed uncommitted pages and the need to reserve the uncommitted pages requires a reduction in the maximum heap size). Thus, there exists a need to overcome at least one of the preceding deficiencies and limitations of the related art.